// class Subject {
//     constructor(name) {
//         this.name = name;
//         this.observer = [];
//         this.num = 0;
//     }
//     on(observer) {
//         this.observer.push(observer);
//     }
//     update(newNum) {
//         this.num = newNum;
//         this.emit();
//     }
//     emit() {
//         this.observer.forEach((ob) => {
//             ob.getmessage(this.num);
//         })
//     }
// }

// class Observer {
//     constructor(name) {
//         this.name = name;
//     }

//     getmessage(num) {
//         console.log(`亲爱的${this.name}顾客，剩余商品数量为${num}`);
//     }
// }

// var shop = new Subject('商店');
// var cus1 = new Observer('张三');
// var cus2 = new Observer('李四');

// shop.on(cus1);
// shop.on(cus2);

// shop.update(0)














class Sub {
    constructor(name) {
        this.name = name;
        this.obj = [];
        this.num = 0;
    }

    on(obj) {
        this.obj.push(obj);
    }

    update(newNum) {
        this.num = newNum;
        this.emit();
    }
    emit() {
        this.obj.forEach((ob) => {
            ob.getMessage(this.num);
        })
    }
}

class Obj {
    constructor(name) {
        this.name = name;
    }
    getMessage(num) {
        console.log(`顾客${this.name}订购了此商品还剩${num}件`);
    }
}




let shop = new Sub('商店');
let people1 = new Obj('zhangsan');
let people2 = new Obj('lisi');


shop.on(people1);
shop.on(people2);

shop.update(9);